package com.haixiaoke.saas.repository.service;

import com.haixiaoke.saas.repository.pojo.ApartmentBillRule;
import com.haixiaoke.saas.repository.vo.ApartmentBillRuleVo;

import java.util.List;

/**
 * 账单生成规则Service接口
 *
 * @author qixi
 * @date 2023-06-16
 */
public interface IApartmentBillRuleService {
    /**
     * 查询账单生成规则
     *
     * @param ruleId 账单生成规则主键
     * @return 账单生成规则
     */
    ApartmentBillRule selectApartmentBillRuleByRuleId(Long ruleId);

    /**
     * 查询账单生成规则列表
     *
     * @param apartmentBillRule 账单生成规则
     * @return 账单生成规则集合
     */
    List<ApartmentBillRuleVo> selectApartmentBillRuleList(ApartmentBillRule apartmentBillRule);

    /**
     * 新增账单生成规则
     *
     * @param apartmentBillRule 账单生成规则
     * @return 结果
     */
    int insertApartmentBillRule(ApartmentBillRule apartmentBillRule);

    /**
     * 修改账单生成规则
     *
     * @param apartmentBillRule 账单生成规则
     * @return 结果
     */
    int updateApartmentBillRule(ApartmentBillRule apartmentBillRule);
    int updateApartmentBillRuleAndRuleRef(ApartmentBillRule apartmentBillRule);

    /**
     * 批量删除账单生成规则
     *
     * @param ruleIds 需要删除的账单生成规则主键集合
     * @return 结果
     */
     int deleteApartmentBillRuleByRuleIds(Long[] ruleIds);

    /**
     * 删除账单生成规则信息
     *
     * @param ruleId 账单生成规则主键
     * @return 结果
     */
     int deleteApartmentBillRuleByRuleId(Long ruleId);

    List<ApartmentBillRule> selectApartmentBillRuleByPeriod();

    ApartmentBillRule selectApartmentBillRuleByOrderId(String orderId);

    int deleteApartmentBillRuleByOrderId(String orderId);

}
